package prototype.example;

/**
 * 原型模式：
 * 用原型实例指定创建对象的种类，并且通过拷贝这些原型创建新的对象
 * Java的顶级父类Object已经实现了clone方法，因此不需要继承这个接口
 * 但是需要被克隆的原始类必须实现Cloneable标识接口，否则会抛异常
 *
 * 原型模式一般用于初始化信息不发生变化的情况下，或者构造函数的执行时间很长，
 * 此时克隆就是一个很好的选择，既提高性能也隐藏了对象创建的细节
 * @author Chen Guang
 * @date 2019/4/8 0008 下午 14:15
 */
public interface ICloneable {
    /**
     * 克隆类，只包含一个克隆方法
     * @return 克隆对象
     */
    Object clone();
}
